From a Store-Collect Object and Ω to Efficient Asynchronous Consensus
نویسندگان
چکیده
This paper presents an efficient algorithm that builds a consensus object. This algorithm is based on an Ω failure detector (to obtain consensus liveness) and a store-collect object (to maintain its safety). A store-collect object provides the processes with two operations, a store operation which allows the invoking process to deposit a new value while discarding the previous value it has deposited and a collect operation that returns to the invoking process a set of pairs (i, val) where val is the last value deposited by the process pi. A store-collect object has no sequential specification. While store-collect objects have been used as base objects to design wait-free constructions of more sophisticated objects (such as snapshot or renaming objects), as far as we know, they have not been explicitly used to built consensus objects. The proposed storecollect-based algorithm, which is round-based, has several noteworthy features. First it uses a single store-collect object (and not an object per round). Second, during a round, a process invokes at most once the store operation and the value val it deposits is a simple pair 〈r, v〉 where r is a round number and v a proposed value. Third, a process is directed to skip rounds according to its view of the current global state (thereby saving useless computation rounds). Finally, the algorithm benefits from the adaptive wait-free implementations that have been proposed for store-collect objects, namely, the number of shared memory accesses involved in a collect operation isO(k) where k is the number of processes that have invoked the store operation. This makes the proposed algorithm particularly efficient and interesting for multiprocess programs made up of asynchronous crash-prone processes that run on top of multicore architectures. Key-words: asynchronous shared memory system, building block, concurrent object, consensus, distributed algorithm, eventual leader, failure detector, fault-tolerance, modularity, multicore system, process crash, store-collect object Consensus asynchrone efficace à partir des objets distribués Ω et Store-collect Résumé : Cet article présente un algorithme efficace qui implémente un objet consensus sans attente (wait-free). Cet algorithme s’appuie sur un détecteur de fautes Ω pour garantir la vivacité du consensus et sur un objet store-collect qui en assure la sûreté. Cette approche permet de bénéficier des implémentations adaptatives existantes de l’objet store-collect, ce qui fait de l’algorithme proposé une alternative intéressante pour résoudre le problème du consensus dans les systèmes asynchrones sujets aux défaillances construits sur des architectures multiprocesseur. Mots clés : système asynchrone, brique de base, mémoire partagée, objets distribués, consensus, algorithme distribué, leader inéluctable, détecteur de fautes, tolérance aux fautes, modularité, système multiprocesseur, défaillances de processus, objet store-collect * Institut Universitaire de France ** ASAP : équipe commune avec l’Université de Rennes 1 et Inria c ©IRISA – Campus de Beaulieu – 35042 Rennes Cedex – France – +33 2 99 84 71 00 – www.irisa.fr 2 M. Raynal & J. Stainer
منابع مشابه
Consensus using Asynchronous Failure Detectors
The FLP result shows that crash-tolerant consensus is impossible to solve in asynchronous systems, and several solutions have been proposed for crash-tolerant consensus under alternative (stronger) models. One popular approach is to augment the asynchronous system with appropriate failure detectors, which provide (potentially unreliable) information about process crashes in the system, to circu...
متن کاملWait-Free Objects for Real-Time Systems? (position paper)
The aim of this position paper is to promote the use of wait-free implementations for real-time shared objects. Such implementations allow the nonfaulty processes to progress despite the fact the other processes are slow, fast or have crashed. This is a noteworthy property for shared real-time objects. To assess its claim, the paper considers wait-free implementations of three objects: a renami...
متن کاملBrief Announcement: From an Intermittent Rotating Star to a Leader
The class of eventual leader oracle [2] (usually denoted Ω) provides the processes with a leader primitive that outputs a process id each time it is called, and such that, after some finite but unknown time, all its invocations return the same id, which is the identity of a correct process (a process that does not commit failures). Such an oracle is particularly weak: (1) a correct leader is ev...
متن کاملTight RMR Lower Bounds for Mutual Exclusion
We investigate the remote memory references (RMRs) complexity of deterministic processes that communicate by reading and writing shared memory in asynchronous cache-coherent and distributed shared-memory multiprocessors. We define a class of algorithms that we call order encoding. By applying information-theoretic arguments, we prove that every order encoding algorithm, shared by n processes, h...
متن کاملWeakest failure detectors via an egg - laying simulation ( Preliminary Version ) Antonio
In the k-set agreement task, n processes propose values, and have to decide on at most k of these values. In particular, consensus is 1-set agreement. In PODC 2008 Zieliński showed that the anti−Ω failure detector is necessary and sufficient to solve (n − 1)-set agreement in an asynchronous read/write shared memory system where at most t processes can fail by crashing, t = n− 1. In this paper i...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012